package co.com.travelsoft.ati.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.PasswordTextBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;

public class Login extends Composite {
	
	private final TravelSoftServiceAsync servicio = GWT
			.create(TravelSoftService.class);

	
	private TextBox textBoxUsuario = new TextBox();
	private PasswordTextBox textBoxClave = new PasswordTextBox();
	private Hyperlink hprlnkRegitrarUsuario = new Hyperlink("Registrar usuario", false, "registrarUsuario");
	private Button btnIngresar = new Button("Ingresar");

	public Login() {
		
		VerticalPanel verticalPanel = new VerticalPanel();
		initWidget(verticalPanel);
		
		Label lbLogin = new Label("Ingresar a la cuenta");
		verticalPanel.add(lbLogin);
		
		FlexTable flexTable = new FlexTable();
		verticalPanel.add(flexTable);
		
		Label lblUsuario = new Label("Usuario");
		flexTable.setWidget(0, 0, lblUsuario);
		
		
		flexTable.setWidget(0, 1, textBoxUsuario);
		
		Label lblClave = new Label("Clave");
		flexTable.setWidget(1, 0, lblClave);
		
		
		flexTable.setWidget(1, 1, textBoxClave);
		
		
		flexTable.setWidget(2, 1, hprlnkRegitrarUsuario);
		
		

		flexTable.setWidget(3, 1, btnIngresar);
		
		
		this.getBtnIngresar().addClickHandler(new ClickHandler() {
			public void onClick(ClickEvent event) {
				if (textBoxUsuario.getText().length() == 0
						|| textBoxClave.getText().length() == 0) {
					    return;
					}
				
				servicio.validarUsuario(textBoxUsuario.getText(),textBoxClave.getText(), new AsyncCallback<Boolean>() {

					@Override
					public void onFailure(Throwable caught) {
						caught.printStackTrace();					
					}

					@Override
					public void onSuccess(Boolean result) {
						if(result){
							History.newItem("inicio");
						}else{
							Window.alert("Usuario o clave incorrecta");
						}
					}
				});
	
			}
		});		
		
		
	}

	public TextBox getTextBoxUsuario() {
		return textBoxUsuario;
	}

	public TextBox getTextBoxClave() {
		return textBoxClave;
	}


	public Button getBtnIngresar() {
		return btnIngresar;
	}

	public Hyperlink getHprlnkRegitrarUsuario() {
		return hprlnkRegitrarUsuario;
	}

	

}
